共计 1465 个字符,预计需要花费 4 分钟才能阅读完成。
Python 字符串格式化使用 " 字符 % 格式 1 % 格式 2 字符 " % (变量 1, 变量 2),% 格式表示接受变量的类型。简单的使用例子如下:
# 例:字符串格式化
Name = ‘Chaishiwei’
print ‘www.%s.com’ % Name
>> www.Chaishiwei.com # 输出结果Name = ‘Chaishiwei’
Zone = ‘com’
print ‘www.%s.%s’ % (Name, Zone)
>> www.Chaishiwei.com # 输出结果
在 Python 中格式化输出字符串使用的是 % 运算符,通用的形式为
格式标记字符串 % 要输出的值组
其中,左边部分的”格式标记字符串“可以完全和 c 中的一致。右边的 ’ 值组 ’ 如果有两个及以上的值则需要用小括号括起来,中间用短号隔开。重点来看左边的部分。左边部分的最简单形式为:
%cdoe
其中的 code 有多种,不过由于在 python 中,所有东西都可以转换成 string 类型,因此,如果没有什么特殊需求完全可以全部使用’%s‘来标记。比如:
‘%s %s %s’ % (1, 2.3, [‘one’, ‘two’, ‘three’])
它的输出为 ’1 2.3 [‘one’, ‘two’, ‘three’]’,就是按照 % 左边的标记输出的。虽然第一个和第二值不是 string 类型,一样没有问题。在这个过程中,当电脑发现第一个值不是 %s 时,会先调用整型数的函数,把第一个值也就是 1 转成 string 类型,然后再调用 str() 函数来输出。前面说过还有一个 repr() 函数,如果要用这个函数,可以用 %r 来标记。除了 %s 外,还有很多类似的 code:
整型数:%d
无符号整型数:%u
八进制:%o
十六进制:%x %X
浮点数:%f
科学记数法: %e %E
根据数值的不同自动选择 %e 或 %f: %g
根据数值的不同自动选择 %E 或 %f: %G
这里用 % 作为格式标记的标识,也有一个 % 本身应该如何输出的问题。如果要在”格式标记字符串“中输出 % 本身,可以用 %% 来表示。
格式符号为数字时前面可以加为数和补缺位如:%[0][总位数][.][小数位数] 来设定要转换的样式,具体使用方法如下:
# 例:数字格式化
nYear = 2013
nMonth = 3
nDay = 24
# 格式化日期 %02d 数字转成两位整型缺位填 0
print ‘%04d-%02d-%02d’ % (nYear, nMonth, nDay)
>> 2018-08-18 # 输出结果fValue = 8.123
print “%06.2f %” fValue # 保留宽度为 6 的 2 位小数浮点型
>> 008.12print “%d” % 10 # 输出十进制
>> 10print “%o” % 10 # 输出八进制
>> 12print “%02x” % 10 # 输出两位十六进制,字母小写空缺补零
>> 0aprint “%04X” % 10 # 输出四位十六进制,字母大写空缺补零
>> 000Aprint “%.2e” % 1.2888 # 以科学计数法输出浮点型保留 2 位小数
>> 1.29e+00
Table 3.1. 字符串格式化代码
格式 描述
%% # 百分号标记
%c # 字符及其 ASCII 码
%s # 字符串
%d # 有符号整数 (十进制)
%u # 无符号整数 (十进制)
%o # 无符号整数 (八进制)
%x # 无符号整数 (十六进制)
%X # 无符号整数 (十六进制大写字符)
%e # 浮点数字 (科学计数法)
%E # 浮点数字 (科学计数法,用 E 代替 e)
%f # 浮点数字 (用小数点符号)
%g # 浮点数字 (根据值的大小采用 %e 或 %f)
%G # 浮点数字 (类似于 %g)
%p # 指针 (用十六进制打印值的内存地址)
%n # 存储输出字符的数量放进参数列表的下一个变量中